import {
  _serverUrl
} from 'config.js'
// 网络请求封装
export default class network {
  // 展示进度条的网络请求
  // url:网络请求的url
  // params:请求参数
  // loadingText:进度条的提示信息
  // isShowLoading:是否显示加载提示
  // success:成功的回调函数
  // fail：失败的回调 

  static get(url, params, success, fail, headers, isShowLoading = true, loadingText, ) {

    let token = null;
    try {
      var value = wx.getStorageSync('token') //从本地缓存中获取Session信息 
      if (value) {
        token = value.token;
      }
    } catch (e) {

    }

    url = _serverUrl + url; //拼接出完整的url 
    // console.log(url)
    if (isShowLoading) {
      wx.showNavigationBarLoading()
      if (loadingText != "") {
        wx.showLoading({
          title: loadingText,
        })
      }
    }

    let defaluteHeader = {
      'content-type': 'application/json',
    }

    if (token) { //如果token存在把他放入头部
      defaluteHeader = {
        'content-type': 'application/json',
        'Authorization': "Bearer " + token,
      }
    }
    wx.request({
      url: url,
      data: params,
      header: {
        ...defaluteHeader,
        ...headers,
      },
      method: 'GET',
      success: function(res) {
        if (res.statusCode == 200) {
          if (isShowLoading) {
            wx.hideNavigationBarLoading()
            if (loadingText != "") {
              wx.hideLoading()
            }
          }
          // if (res.data.code == 10001) {
          //   wx.login({
          //     success: function(res) {

          //       if (res.code) {

          //         network.post('/miniapp.login2', {
          //           jscode: res.code,
          //         }, (r) => {
          //           if (r.code == 0) {
          //             wx.setStorage({ //将SessionInfo 放入本地缓存
          //               key: 'token',
          //               data: r.data,
          //             })

          //             defaluteHeader = {
          //               'content-type': 'application/json',
          //               'Authorization': "Bearer " + r.data.token,
          //             }
          //             wx.request({
          //               url: url,
          //               data: params,
          //               header: {
          //                 ...defaluteHeader,
          //                 ...headers,
          //               },
          //               method: 'GET',
          //               success: function(res) {
          //                 if (res.statusCode == 200) {
          //                   if (isShowLoading) {
          //                     wx.hideNavigationBarLoading()
          //                     if (loadingText != "") {
          //                       wx.hideLoading()
          //                     }
          //                   } 
          //                   success(res.data)
          //                 } else {
          //                   if (isShowLoading) {
          //                     wx.hideNavigationBarLoading()
          //                     if (loadingText != "") {
          //                       wx.hideLoading()
          //                     }
          //                   }
          //                   fail && fail()
          //                 }
          //               },
          //               fail: function(res) {
          //                 if (isShowLoading) {
          //                   wx.hideNavigationBarLoading()
          //                   if (loadingText != "") {
          //                     wx.hideLoading()
          //                   }
          //                 }
          //                 fail && fail()
          //               },
          //               complete: function(res) {

          //               },
          //             })
          //           }


          //         }, (e) => {
          //           console.log(e)
          //         }, {}, true, '')


          //         // console.log('获取用户登录态成功！' + res.code)
          //       } else {
          //         // console.log('获取用户登录态失败！' + res.errMsg)
          //       }
          //     }
          //   });
          // }
          success(res.data)
        } else {
          if (isShowLoading) {
            wx.hideNavigationBarLoading()
            if (loadingText != "") {
              wx.hideLoading()
            }
          }
          fail && fail()
        }
      },
      fail: function(res) {
        if (isShowLoading) {
          wx.hideNavigationBarLoading()
          if (loadingText != "") {
            wx.hideLoading()
          }
        }
        fail && fail()
      },
      complete: function(res) {

      },
    })
  }



  // 展示进度条的网络请求
  // url:网络请求的url
  // params:请求参数
  // loadingText:进度条的提示信息
  // isShowLoading:是否显示加载提示
  // success:成功的回调函数
  // fail：失败的回调
  static post(url, params, success, fail, headers, isShowLoading = true, loadingText) {

    let token = null;
    try {
      var value = wx.getStorageSync('token') //从本地缓存中获取Session信息
      if (value) {
        token = value.token;
      }
    } catch (e) {

    }


    url = _serverUrl + url; //拼接出完整的url 
    if (isShowLoading) {
      wx.showNavigationBarLoading()
      if (loadingText != "") {
        wx.showLoading({
          title: loadingText,
        })
      }
    }

    let defaluteHeader = {
      'content-type': 'application/json',
    }

    if (token) { //如果token存在把他放入头部
      defaluteHeader = {
        'content-type': 'application/json',
        'Authorization': "Bearer " + token,
      }
    }

    // console.log(url)

    wx.request({
      url: url,
      data: params,
      header: {
        ...defaluteHeader,
        ...headers
      },
      method: 'POST',
      success: function(res) {
        if (res.statusCode == 200) {
          if (isShowLoading) {
            wx.hideNavigationBarLoading()
            if (loadingText != "") {
              wx.hideLoading()
            }
          }
          success(res.data)
        } else {
          if (isShowLoading) {
            wx.hideNavigationBarLoading()
            if (loadingText != "") {
              wx.hideLoading()
            }
          }
          fail && fail()
        }
      },
      fail: function(res) {
        if (isShowLoading) {
          wx.hideNavigationBarLoading()
          if (loadingText != "") {
            wx.hideLoading()
          }
        }
        fail && fail()
      },
      complete: function(res) {

      },
    })
  }
}